import { get, post, put, del } from './request.js'

// 问卷相关 API
export const questionnaireApi = {
  /**
   * 创建问卷
   * @param {Object} questionnaireData - 问卷数据
   * @returns {Promise} 创建结果，返回问卷ID
   */
  createQuestionnaire: (questionnaireData) => {
    return post('/questionnaire/create', questionnaireData)
  },

  /**
   * 更新问卷
   * @param {Object} questionnaireData - 问卷数据
   * @returns {Promise} 更新结果
   */
  updateQuestionnaire: (questionnaireData) => {
    return put('/questionnaire/update', questionnaireData)
  },

  /**
   * 删除问卷
   * @param {number} id - 问卷ID
   * @returns {Promise} 删除结果
   */
  deleteQuestionnaire: (id) => {
    return del(`/questionnaire/${id}`)
  },

  /**
   * 获取问卷详情
   * @param {number} id - 问卷ID
   * @returns {Promise} 问卷详情
   */
  getQuestionnaireDetail: (id) => {
    return get(`/questionnaire/${id}`)
  },

  /**
   * 分页查询问卷列表
   * @param {Object} queryData - 查询条件
   * @returns {Promise} 分页问卷列表
   */
  getQuestionnairePage: (queryData) => {
    return post('/questionnaire/page', queryData)
  },

  /**
   * 发布问卷
   * @param {number} id - 问卷ID
   * @returns {Promise} 发布结果
   */
  publishQuestionnaire: (id) => {
    return put(`/questionnaire/publish/${id}`)
  },

  /**
   * 下线问卷
   * @param {number} id - 问卷ID
   * @returns {Promise} 下线结果
   */
  offlineQuestionnaire: (id) => {
    return put(`/questionnaire/offline/${id}`)
  }
}

// 使用示例
export const questionnaireExample = {
  // 创建问卷示例
  async createNewQuestionnaire() {
    try {
      const questionnaireData = {
        title: '用户满意度调查',
        description: '了解用户对我们产品的满意度',
        status: 0 // 草稿状态
      }
      const result = await questionnaireApi.createQuestionnaire(questionnaireData)
      console.log('创建问卷成功:', result)
      return result
    } catch (error) {
      console.error('创建问卷失败:', error)
      throw error
    }
  },

  // 获取问卷详情示例
  async getQuestionnaireById(id) {
    try {
      const result = await questionnaireApi.getQuestionnaireDetail(id)
      console.log('问卷详情:', result)
      return result
    } catch (error) {
      console.error('获取问卷详情失败:', error)
      throw error
    }
  },

  // 分页查询问卷列表示例
  async getQuestionnaireList() {
    try {
      const queryData = {
        page: 1,
        limit: 10,
        status: 1 // 已发布状态
      }
      const result = await questionnaireApi.getQuestionnairePage(queryData)
      console.log('问卷列表:', result)
      return result
    } catch (error) {
      console.error('获取问卷列表失败:', error)
      throw error
    }
  },

  // 发布问卷示例
  async publishQuestionnaireById(id) {
    try {
      const result = await questionnaireApi.publishQuestionnaire(id)
      console.log('发布问卷成功:', result)
      return result
    } catch (error) {
      console.error('发布问卷失败:', error)
      throw error
    }
  }
} 